300iq contest 3 vp 记录

任意ドア

靠 300iq 续命了嘤 ~

pengsoo


upd: 这里是咕咕咕的题(以后有心情受虐的话会回来的 QwQ

D 杨表,咕了

A 大毒瘤题,咕了

G 码农(?)题,咕了


$B$

叶子和非叶子可以匹配,叶子彼此不可以匹配,非叶子彼此可以匹配。

$Code$

$I$

画个韦恩图容斥一下……

$Code$

$F$

又是搬过的题

考虑第 $i$ 个怪物如果选择要它的胜点,空出来去打后面怪物的回合数为 $l_i$;如果不要它的胜点,空出的回合数为 $r_i$。

$l_i \leq r_i$, $l_i \geq -1$

设合法方案中第 $i$ 个怪物贡献的空出回合数为 $p_i$,合法条件是 $\forall i \in [1, n], \sum\limits_{j = 1}^i p_j \leq -1$(因为不可能和对手相差超过 $1$),最优方案就是最大化 $p_i = l_i$ 的数量

贪心,初始所有 $p_i = l_i$,从前往后做,若 $\sum p < -1$ 就贪心选之前 $r_i - l_i$ 最大的若干个换上。

$Code$

$J$

求,让每个点邻边和为 $5k$ 的方案数。

首先可以列出 $m$ 条边作为自变量的 $n$ 个方程

$ans = 5^{m - 基个数}$

首先分连通块算基个数。

  • 树:[点数] 个基
  • 偶环:[点数 - 1] 个基
  • 奇环:[点数] 个基

那么我们得到结论:二分图基的个数为 [点数 - 1],非二分图基的个数为 [点数]。

$Code$

$E$

注意到这是个 bash 博弈。SG 函数为 $sg(x) = x \mod (k + 1)$,其中 $k$ 为一次最多能取的个数。

那么就是对于 $k \in [1, n]$,求出 $\otimes_{i = 1}^{n} (a_i \mod (k + 1))$

枚举 $k$,枚举 $j \in [0, \lceil \frac{n}{k + 1} \rceil]$,当前区间 $a_i$ 的贡献拆位计算。

当前在问第 $w$ 位。那么就是问 $a_i - j$ 第 $w$ 位为 $1$ 的 $a_i$ 个数。

对 $2^{w + 1}$ 取模后形成若干 $[0, 2^w)$, $[2^w, 2^{w + 1})$ 的区间,我们要统计在后一个里的个数。

整块的预处理,零散的前缀和。

细节出乎意料的少(我好像很怕这种进制题,上次那道「梦中的题面」把人直接搞没了 qwq

$Code$

$C$

首先只保留所有从 $(n, m)$ 出发能到达的点。

每次行走都会到达新的斜对角线,因此把这些空位按斜对角线分组。

若一条斜对角线上只有一个空位那可以和任意位置搭,若有多个空位那选择最边缘的两个,因为可以证明中间点能到达的后继点,至少能从两边点中的一端到达。

假设堵上最左的空位,我们考虑堵上右下哪条斜线的哪些点能堵死路径。

我们从次左和最右的空位出发,次左的尽量往下,最右的尽量往右,若有汇合则堵上汇合点就堵死了路径。

好神啊。

注意特判初始就不连通的方案,和取一条斜对角线上两个点的方案。

$Code$

$H$

求问一个左部点向右部点前缀连边的二分图的简单环个数。

那么将 $a_i$ 升序排序后一个右部点向左部点后缀连边,有什么性质呢?

没有性质。看题解了。

线头 dp!!确实挺有道理……

考虑用左部点去合并以右部点为端点的段,所以要将 $a$ 升序排序

$f[i, j]$ 表示前 $i$ 个右部点形成了 $j$ 段的方案数

加入左部点会合并段,加入右部点会增加段。

$Code$